package com.css.fxfzdzzh.modules.eqLandslide.count.repository;

import com.css.fxfzdzzh.modules.eqLandslide.count.dto.HazardousAreaDto;
import com.css.fxfzdzzh.modules.eqLandslide.count.entity.*;
import com.css.fxfzdzzh.modules.eqLandslide.count.param.LargeScreenParam;
import com.css.fxfzdzzh.modules.eqLandslide.count.param.TaskModelParam;
import com.css.fxfzdzzh.modules.eqLandslide.count.vo.*;
import com.css.fxfzdzzh.modules.evaluate.entity.CountAreaResult;

import java.sql.Timestamp;
import java.util.List;
import java.util.Map;

/**
 * @Description: fxfzdzzh
 * @Author: lhl
 * @CreateDate: 2023/2/15 13:58
 */
public interface EqLandslideRepository {
    String getByGeom2(String geom, String geom1, Integer number1, Integer number2);
    String getByGeom3(String geom, String geom1, Integer number1, Integer number2);

    int saveDzzhResultCcfx(DzzhResultCcfx entity);
    int saveDzzhResultLogisticGrowth(DzzhResultLogisticGrowth entity);
    int saveDzzhResultExponential(DzzhResultExponential entity);
    int saveDzzhResultLoessPlateau(DzzhResultLoessPlateau entity);
    int saveDzzhResultNewmark(DzzhResultNewmark entity);

    DzzhTaskModel getDzzhTaskModelByTaskIdAndResultStatus(String taskId, String resultStatus);

    int saveDzzhTaskModel(DzzhTaskModel entity);

    int saveDzzhModelCcfx(DzzhModelCcfx entity);
    int saveDzzhModelExponential(DzzhModelExponential entity);
    int saveDzzhModelLogisticGrowth(DzzhModelLogisticGrowth entity);
    int saveDzzhModelLoessPlateau(DzzhModelLoessPlateau entity);
    int saveDzzhModelNewmark(DzzhModelNewmark entity);

    List<DzzhTaskModel> getDzzhTaskModel(String taskId);
    DzzhTaskModel getDzzhTaskModelByDtmId(String dtmId);

    Map<String, Object> getTaskModelVOPage(TaskModelParam param, int curPage, int pageSize);

    TaskModelCcfxVO getTaskModelDetail1(String taskId);
    TaskModelExponentialVO getTaskModelDetail3(String taskId);
    TaskModelLogiGrowthVO getTaskModelDetail4(String taskId);
    TaskModelLoessPlateauVO getTaskModelDetail2(String taskId);
    TaskModelNewMarkVO getTaskModelDetail5(String taskId);

    void delDzzhTaskModel(String dtmId, String userId, Timestamp updateTime);

    void updateDzzhTaskModel(String dtmId, String evaluateStatus, String resultStatus, String userId, Timestamp updateTime);
    void updateDzzhTaskModel1(DzzhTaskModel entity);

    void mergeGroupBatchSave(List<LithologyMergeResult> results);
     List<String> getLithologyGroupName(String taskId);

    void delete(String taskId, String lithologyCode, String s);

    void deleteByVersion(String taskId, String lithologyCode, String finalResultFlag);

    void saveDzzhResultNewmarkLithologyGroup(List<DzzhResultNewmarkLithologyGroup> lgList);

    List<LithologyGroup> getLithologyGroup(String dtmId);

    DzzhModelCcfx getModelDataByTaskId1(String taskId, String dtmId);
    DzzhModelLoessPlateau getModelDataByTaskId2(String taskId, String dtmId);
    DzzhModelExponential getModelDataByTaskId3(String taskId, String dtmId);
    DzzhModelLogisticGrowth getModelDataByTaskId4(String taskId, String dtmId);
    DzzhModelNewmark getModelDataByTaskId5(String taskId, String dtmId);


    List<DzzhResultCcfx> getResultDataByTaskId1(String taskId, String proExceed);
    List<DzzhResultLoessPlateau> getResultDataByTaskId2(String taskId, String proExceed);
    List<DzzhResultExponential> getResultDataByTaskId3(String taskId, String dzIntensity);
    List<DzzhResultLogisticGrowth> getResultDataByTaskId4(String taskId, String dzIntensity);
    List<DzzhResultNewmark> getResultDataByTaskId5(String taskId, String proExceed);

    int updateDtmIdByTaskId1(String newDtmId, String taskId, String oldDtmId);
    int updateDtmIdByTaskId2(String newDtmId, String taskId, String oldDtmId);
    int updateDtmIdByTaskId3(String newDtmId, String taskId, String oldDtmId);
    int updateDtmIdByTaskId4(String newDtmId, String taskId, String oldDtmId);
    int updateDtmIdByTaskId5(String newDtmId, String taskId, String oldDtmId);

    int delDzzhModelCcfx(String id);
    int delDzzhModelLoessPlateau(String id);
    int delDzzhModelExponential(String id);
    int delDzzhModelLogisticGrowth(String id);
    int delDzzhModelNewmark(String id);

    int delDzzhResultCcfx(String dtmId);
    int delDzzhResultLoessPlateau(String dtmId);
    int delDzzhResultExponential(String dtmId);
    int delDzzhResultLogisticGrowth(String dtmId);
    int delDzzhResultNewmark(String dtmId);



    int saveDzzhJcClimate(DzzhJcClimate entity);
    int delDzzhJcClimate(String taskId);

    int saveDzzhCountBuffer(DzzhCountBuffer entity);
    int saveDzzhCountBuffer1(DzzhCountBuffer entity, String tableName);
    int delDzzhCountBuffer(String taskId, String type, String flag);
    int delDzzhCountBuffer1(String taskId, String tableName);

    List<String> getDataByDzIntensityOfDpzs(String dzIntensity);

    TaskModelCcfxVO getTaskModelDetail1Mil(String taskId, String dtmId);

    TaskModelLoessPlateauVO getTaskModelDetail2Mil(String taskId, String dtmId);

    TaskModelExponentialVO getTaskModelDetail3Mil(String taskId, String dtmId);

    TaskModelLogiGrowthVO getTaskModelDetail4Mil(String taskId, String dtmId);

    TaskModelNewMarkVO getTaskModelDetail5Mil(String taskId, String dtmId);

    List<String> getByEstimateType(LargeScreenParam param);

    List<HazardousAreaDto> getHazardousArea(String ids,LargeScreenParam param);

    void save(HistoricalSurfaceEntity entity);

    List<SurfaceRuptureZoneVo> getSurfaceRuptureZone();


    List<CountAreaResult> getStatisticsArea(String intensity,String type,String modelId,String modelType,String tableName);
}
